Flash non-volatile storage devices are commonly used in computers as high-speed solid-state storage devices. These devices require flash memory controllers that typically work as random write/random read, small data block devices. Their data block size is typically 8-16 KB. Write data received by these drives for storage may consist of distinct subsets of data types. These subsets may have differing requirements for data throughput and access time, media wear, Quality of Service (QoS), and the like. Typically, flash memory controllers do not recognize or distinguish between these different subsets when storing data.